]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appDisplay: Remove icon from folder when dragging out
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Thu, 24 Sep 2020 19:06:01 +0000 (16:06 -0300)
committerFlorian Müllner <florian.muellner@gmail.com>
Mon, 5 Oct 2020 12:06:48 +0000 (12:06 +0000)
When dragging an icon outside of a folder dialog, there's a small delay
before the dialog pops down. If the icon is dropped during this delay,
the drag is cancelled, and the icon continues to be in the folder.

However, this behavior turned out to be problematic, and it was a common
point of failure that throwing icons outside folders wouldn't work.

Remove the icon from the folder when dragging it to outside the dialog.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3092

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447

js/ui/appDisplay.js

index 43bab2db98e4c9a67038ad320a6d308df9124244..ce6754c5625d3fadc053e101fd3129564996ccb6 100644 (file)
@@ -2454,7 +2454,18 @@ var AppFolderDialog = GObject.registerClass({
             this._setupDragMonitor();
         }
 
-        return DND.DragMotionResult.NO_DROP;
+        return DND.DragMotionResult.MOVE_DROP;
+    }
+
+    acceptDrop(source) {
+        const appId = source.id;
+
+        this.popdown(() => {
+            this._view.removeApp(source);
+            this._appDisplay.selectApp(appId);
+        });
+
+        return true;
     }
 
     toggle() {